package munyorderweb_Android;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import munyorderweb_DB.DB_manager;

public class PostDeliveryServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO 自動生成されたメソッド・スタブ
		doPost(req, resp);
	}

	@Override
	protected void doPost(
			HttpServletRequest req,
			HttpServletResponse resp)
					throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");

		Connection con = null;
		try{
			con = DB_manager.getConnection();
			Statement stm = con.createStatement();

//		配膳状況変更用サーブレット

			Map<String, String[]> map = req.getParameterMap();

			String[] Or_no = (String[])map.get("order_no");
			String[] Or_de = (String[])map.get("order_delivery");

			//			上記項目のいずれかが取得できない場合、処理結果として「SC_BAD＿REQEST（４００）」を返して終了する。
			if (Or_no.length == 0 || Or_de.length == 0)
			{
				resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
			}
			else {
				for(int i=0; i<Or_de.length; i++){

					String Or_No  = Or_no[i];
					String Or_De  = Or_de[i];

//		配膳状況が配膳済みでも未配膳でもない場合、処理結果として「SC＿BAD_REQEST（４００）」を返して終了する。
					if(Integer.parseInt(Or_De) != 0 && Integer.parseInt(Or_De) != 1){
						resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
					}else{

						System.out.println("Key :  " + Or_No);
						System.out.println("Key :  " + Or_De);

						/*if(){

						}*/

//		ordersテーブルの情報を更新する
						String sql = "Update orders SET order_delivery = " + Or_De +
								" WHERE order_no= " + Or_No;
						stm.executeUpdate(sql);
//		例外が発生した場合、「SC_SERVICE_UNAVAILABLE（５０３）」を返して終了する。
					}
				}
			}
		}catch(SQLException e){
			e.printStackTrace();
			resp.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
		}finally{
			try{
				if(con != null){
					con.close();
				}
			}catch (SQLException e){
				e.printStackTrace();
			}
		}
//	3	処理結果として「SC＿OK（２００）」を返して終了する。
		resp.setStatus(HttpServletResponse.SC_OK);
	}
}